/**
 * Description:
 * Class Name:StringNodeTest
 * Date:2022/5/2 13:52
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第15章_输入输出._15_4_输入输出流体系._15_4_2_输入输出流体系;

import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;

public class StringNodeTest {
    public static void main(String[] args) {
        var src = """
                从明天起，做一个幸福的人
                喂马，劈柴，周游世界
                从明天起，关心粮食和蔬菜
                我有一所房子，面朝大海，春暖花开
                从明天起，和每一个亲人通信
                告诉他们我的幸福
                """;
        var buffer = new char[32];
        var hasRead = 0;
        try (
                var sr = new StringReader(src)
                ){
            while ((hasRead = sr.read(buffer)) > 0){
                System.out.println(new String(buffer, 0, hasRead));
            }
        }
        catch (IOException ioException){
            ioException.printStackTrace();
        }

        try (
                // 创建StringWriter时，实际上以一个StringBuffer作为输出节点
                // 下面指定的20就是StringBuffer的初始长度
                var sw = new StringWriter(20)
                ){
            // 调用StringWriter的方法执行输出
            sw.write("有一个美丽的新世界，\n");
            sw.write("她在远方等我,\n");
            sw.write("那里有天真的孩子，\n");
            sw.write("还有姑娘的酒窝\n");
            System.out.println("----下面是sw的字符串节点里的内容----");
            // 使用toString()方法返回StringWriter的字符串节点的内容
            System.out.println(sw);
        }
        catch (IOException ioException){
            ioException.printStackTrace();
        }
    }
}
//从明天起，做一个幸福的人
//喂马，劈柴，周游世界
//从明天起，关心粮
//食和蔬菜
//我有一所房子，面朝大海，春暖花开
//从明天起，和每一个亲
//人通信
//告诉他们我的幸福
//----下面是sw的字符串节点里的内容----
//有一个美丽的新世界，
//她在远方等我,
//那里有天真的孩子，
//还有姑娘的酒窝